var mapainicializado = false;

function precargaAdmin (archivo) {
	precarga(archivo, "proc_busquedalugares_admin.jsp");
}

function precargaUser(archivo) {
	precarga(archivo, "proc_busquedalugares_user.jsp");
}

function precargaUserFavs(archivo){
	precarga(archivo, "proc_busquedalugaresfavs_user.jsp");
}

function precargaBasica(archivo) {
	precarga(archivo, "procesabusquedalugares.jsp");
}

function precarga(archivo, archivo_procesa){
	if ($('form_nuevo_lugar')) {
		Element.hide('form_nuevo_lugar');
	}
	var btnBuscar = $('btnbuscarlugar');
	var btnBorraSeleccion = $("btnBorraSeleccion");
	if(btnBuscar){
		btnBuscar.observe("click", function(){
			if($("iniciotupla")){
				reseteaCursor();
			}
			//alert(archivo + ";;" +archivo_procesa);
			clearArrayLugares();
			procesaParametros("lista_lugares", "form_lugares", archivo_procesa, "get");
			/*if(archivo_procesa.indexOf("admin"))
				inicializaLugaresInteres(archivo, 1);
			else
				inicializaLugaresInteres(archivo);*/
			setTimeout("centraMapaEnPrimerLugar()", 300);
		});	
		
	}
	if (btnBorraSeleccion) {
		btnBorraSeleccion.disabled = true;
		btnBorraSeleccion.onclick = function(){
			borrarTiposSeleccionados("tipo_lista", this);
			Markers('Todos');
			return false;
		};
	}
}

/*
	Metodo que hacer aparecer un nuevo formulario para introducir datos del nuevo lugar.
	Tambi�n hace una copia del select disponible para la busqueda por tipos para evitar 
	mas conexiones con la BD, trasladandolo al nuevo formulario de creacion de lugar.
*/
function crearFormularioNuevoLugar(){
	$('btnCancelaCreacionLugar').disabled=false;
	new Effect.SlideDown('form_nuevo_lugar');
	var selectform = $('tipo_lista_nuevo_lugar');
}

var tfnoid;
function anadirTfno(){
	tfnoid = $F('numMaxTfnos');
	tfnoid++;
	var divtfno = new Element('div',
								{id: "divtfno" + tfnoid,
								'class': "divtfno" 
								});
	// este campo oculto almacenar� el id del tfno
	// para el caso de un nuevo tfno a�adido dinamicamente valdra 0							 
	var idtfno = new Element ('input',
								{type: "hidden",
								id: "idtfno" + tfnoid,
								name: "idtfno" + tfnoid,
								value: "0",
								size: "2"
								});											
								
	var chkbox = new Element ('input',
								{type: "checkbox",
								id: "tfnochk_" + tfnoid,
								name: "tfnochk_" + tfnoid,
								'class': "chkbox"
								});						

	var input = new Element ('input',
								{type: "text",
								id: "tfno" + tfnoid,
								name: "tfno" + tfnoid,
								value: "",
								maxlength: "45",
								title: "Introduzca telefono"
								});	
																		
	var listaTfnos = $('listatfnos');
	divtfno.appendChild(idtfno);
	divtfno.appendChild(chkbox);
	divtfno.appendChild(input);
	listaTfnos.appendChild(divtfno);
	
	$('numMaxTfnos').value++;
	$('numActualTfnos').value++;
	onOffBotonBorrar('btnborrtfno', tfnoid);
}

function quitarTfno(){
	var divContentUrls = $("listatfnos");
	var arrayChkboxMarcados = new Array();
	var contChecked = 0;
	// equivale a document.getElementsByClassName('chkbox')
	arrayChkboxMarcados = $$('.chkbox');
	
	if($F('numActualTfnos') == 1) {
		anadirTfno();
	}
	// cuenta los checkboxes marcados para comprobar que no estan todos seleccionados
	for(var i=0;i<arrayChkboxMarcados.length;i++) {
		if(arrayChkboxMarcados[i] && arrayChkboxMarcados[i].checked)
			contChecked++;
	}
	
	if(contChecked == tfnoid) {
		// si se borran todos, no se dice nada, simplemente a�ade uno 
		// pareceria como si no se hubiera eliminado 
		anadirTfno();
	}
	else {
		for(var i=0;i<arrayChkboxMarcados.length;i++) {
			if(arrayChkboxMarcados[i] && arrayChkboxMarcados[i].checked) {
				var id = arrayChkboxMarcados[i].id.split("_")[1];
				var divtfno = $("divtfno" + id);
				if($("idtfno" + id)) {
						var idtfno = $F("idtfno" + id);
						if(idtfno != 0)
							apuntaEliminados(idtfno);
					}
				divContentUrls.removeChild(divtfno);
				$('numActualTfnos').value--;
				onOffBotonBorrar('btnborrtfno', tfnoid);
			}
		}
	}
}

function apuntaEliminados (id) {
	var tfnosElim = $F('tfnosElim'); 
	if(tfnosElim > 0) {
		tfnosElim += ",";
	}
	tfnosElim += id;
	$('tfnosElim').value = tfnosElim;
}

var imagenid = 1;
function anadirImagen(){
	imagenid++;
	var chkbox = new Element('input',
						{
							id:"imagen" + imagenid,
							name:'imgchk',
							type:'checkbox'
	});
	var form = new Element('input', 
						{
							id: "imagenfile" + imagenid,
							type:'file', 
							name:'imagen',
							value: ''
	});
	var inputTitulo = new Element('input',
						{
							name:"tituloimg", 
							type:"text", 
							maxlength:"40", 
							size:"30"
	});
	var fila = new Element('tr');
	var colFile = new Element('td');
	var colTitulo = new Element('td');
	var imagenes = $("imagen");
	colFile.appendChild(chkbox);
	colFile.appendChild(form);
	colTitulo.appendChild(inputTitulo);
	fila.appendChild(colFile);
	fila.appendChild(colTitulo);
	imagenes.appendChild(fila);	
	onOffBotonBorrar('btborrimg', imagenid);
}

function quitarImagen(){
	var imagen = $("imagen");
	if(imagen && imagen.childNodes.length > 1){
		var filas = imagen.getElementsByTagName('tr');
		for(var i = 1 ; i<filas.length;i++){
			if (filas[i]) {
				var col = filas[i].getElementsByTagName('td');
				if (col[0].firstChild.checked) {
					imagen.removeChild(filas[i]);
					i--;
					imagenid--;
					onOffBotonBorrar('btborrimg', imagenid);
				}
			}
		}
	}
}

function cancelaCreacionNuevoLugar(){
	$('btnCancelaCreacionLugar').disabled=true;
	new Effect.SlideUp($('form_nuevo_lugar'))
}

function obtenerListaResultados(){
	var lista = $('verlista');
	if(lista.checked){
		procesaParametros("lista_lugares", "form_lugares", "procesabusquedalugares.jsp", "get");
	}else{
		alert("No selecciono Lista!");
	}	
}

// MJ
function cargaGaleria(id_lugar, admin){  
	/*$('capagaleria').style.display='block';*/
	var imgsrc=admin?"../images/AJAX_activity/31.gif": "images/AJAX_activity/31.gif";
	ponerCapaDeshabilitadora(true);
	
	var capagaleria = new Element("div", {id:"capagaleria"});
	
	
	var icoloading = new Element("img", 
							   {id:"logocarga",
								src: imgsrc, 
								alt:"Logo cargando"});
	capagaleria.appendChild(icoloading);	
	$('galeriaimagenes').appendChild(capagaleria);
						
	Effect.Fade('page_wrapper',{from:1.0, to:0.4});
	Effect.Appear('galeriaimagenes', {duration: 1});
	var archivo = 'proc_galeria.jsp';
	//procesaParametros('capagaleria', formgal, 'proc_galeria.jsp', 'get');
	new Ajax.Updater('capagaleria', "procesa/proc_galeria.jsp",
		{asynchronous:true,
		evalScripts:true,
		onSuccess:function(){
			capagaleria.removeChild(icoloading);
		},
		onFailure:function(){
			capagaleria.innerHTML = "Fallo la conexion al servidor. Int&eacute;ntelo de nuevo m&aacute;s tarde";
		},
		method:"get", 
		parameters:"elem_mapa=" + id_lugar
	}); 			
}

function cerrarGaleria() {
	ponerCapaDeshabilitadora(false);
	Effect.Fade('capagaleria');
	/*
	 * Las dos siguientes lineas corrigen nuevos bugs
	 */
	detener(); //funcion de visorgaleria.js
	restaurarConfiguracionInicial();
	setTimeout("$('galeriaimagenes').removeChild($('galeriaimagenes').firstChild)", 1000);
	Effect.Appear('page_wrapper');
}

function dameCoordenadas(coord){
	if(coord){
		var inputcoord = coord.getElementsByTagName('input');
		alert(inputcoord[0] + "\n-->" + inputcoord[0].getAttribute('type')
		+"\n-->"+inputcoord[0].getAttribute('name')
		+"\n-->"+inputcoord[0].getAttribute('value'));
	}
}

function verArchivos(){
	for(var i = 1; i <= imagenid; i++){
		if($("imagenfile" + i)){
			alert($("imagenfile"+i).value)
		}
	}
}
//Este metodo toma dos parametros:
//1-  La cadena que recoge el id del select de tipoLugares
//2- Informacion detallada del lugar que se ha seleccionado para editar
function editarLugar(nodoTipoLugares, infoDetalleLugar, id_lugar){
	
	if ($("modlugar")) {
		new Ajax.Updater("modlugar", "procesa/proc_formmodlugar.jsp", {
			asynchronous: true,
			evalScripts: true,
			method: "GET",
			onSuccess: function(){ new Effect.SlideDown("modlugar"); },
			parameters: "id_lugar=" + id_lugar + "&info=" + infoDetalleLugar + "&nodoTipoLugares=" + nodoTipoLugares
		});
		
	}
	else
		alert("MODLUGAR NO EXISTE!!!");
}

function guardaLugar(id_lugar) {
	if($("formmodlugar")) {
		new Ajax.Updater("res_mod_lugar", "procesa/proc_guarda_lugar.jsp",
			{asynchronous:true,
			 evalScripts:true,
			 method:"GET", 
			 parameters: $("formmodlugar").serialize()
			}); 	
		}
	else
		alert("No existo");
}

function agregarLugar(id_lugar, id_usuario) {
	if($("formlistadolugares")) {
		new Ajax.Updater("res_agregado", "procesa/proc_agrega_lugar.jsp",
			{asynchronous:true,
			 evalScripts:true,
			 method:"GET", 
			 parameters: "id_lugar=" + id_lugar + "&id_usuario=" + id_usuario,
			 oncomplete: enfoca('res_agregado')
			}); 	
		}
	else
		alert("No existo");
}

function agregarLugares() {
	if($("formlistadolugares")) {
		new Ajax.Updater("res_agregado", "procesa/proc_agrega_lugares.jsp",
			{asynchronous:true,
			 evalScripts:true,
			 method:"GET", 
			 parameters: $("formlistadolugares").serialize()
			}); 	
		}
	else
		alert("No existo");
}

function borrarLugar(){
	if(confirm("&iquest;Esta seguro que desea borrar?")) {
		paramform = $("formlistadolugares").serialize();
		cloneParamForm = paramform;
		new Ajax.Updater("res_borrado", "procesa/proc_borra_lugar.jsp",
		{
			asynchronous:true,
			evalScripts:true,
			method:"post", 
			parameters:paramform,
			onSuccess: function (){
				actualizaTablaLugaresYMarcadores(cloneParamForm);
				},
			onFailure: function(){
				alert("Fallo el borrado :-(")
			}
		}); 				   
	}
}

function borrarLugarFavorito(){
	paramform = $("formlistadolugares").serialize();
		cloneParamForm = paramform;
		new Ajax.Updater("res_borrado", "procesa/proc_borra_lugar_favorito.jsp",
		{
			asynchronous:true,
			evalScripts:true,
			method:"post", 
			parameters:paramform,
			onSuccess: function (){
				actualizaTablaLugaresYMarcadores(cloneParamForm);
				},
			onFailure: function(){
				alert("Fallo el borrado :-(")
			}
		}); 	
}

/*Esta funcion es muy similar a actualizaTablaEnlaces en ajax_enlaces.js*/
function actualizaTablaLugaresYMarcadores(cloneParamForm){
	var i = 0;
	var tablaLugares = $('cuerpoTablaLugares');
	while ((i = cloneParamForm.indexOf("=", i + 1)) != -1) {
		var id_lugar;
		//cogemos el valor numerico desde la cifra mas significativa
		//Hay que tener en cuenta si es el ultimo parametro de la cadena del URL o no.
		//El ultimo no tendra despues otro ampersand '&'
		if (cloneParamForm.indexOf("&", i) != -1) {
			id_lugar = cloneParamForm.substring(i + 1, cloneParamForm.indexOf("&", i));
		}
		else {
			id_lugar = cloneParamForm.substring(i + 1, cloneParamForm.length);
		}
		var filaTablaLugares = $("fila" + id_lugar);
		if (filaTablaLugares) {
			var tipoElemMapa = $$("#fila" + id_lugar + " td.coltipoelemmapa")[0].innerHTML;
			var coordenadas = ($$("#fila" + id_lugar + " td.nombrelugar div input.coord")[0]).value;
			var padre=filaTablaLugares.parentNode;
			padre.removeChild(filaTablaLugares);
			eliminaMarcador(coordenadas, tipoElemMapa);	
		}
	}
}
//Funcion para mostrar detalles de un lugar 
function verDetallesLugar(idlugar, admin){
	var imgsrc = admin? "../images/AJAX_activity/31.gif": "images/AJAX_activity/31.gif";	

	ponerCapaDeshabilitadora(true);
	var capainfolugar = new Element("div", {id:"capainfolugar"});
	var icoloading = new Element("img", 
							   {id:"logocarga",
								src: imgsrc, 
								alt:"Logo cargando"});
	capainfolugar.appendChild(icoloading);							
	$('infolugar').appendChild(capainfolugar);
	
	Effect.Fade('page_wrapper',{from:1.0, to:0.4});
	Effect.Appear('infolugar', {duration: 1});
	var archivo = 'procesa/proc_detalles_lugar.jsp';
	//procesaParametros('capagaleria', formgal, 'proc_galeria.jsp', 'get');
	new Ajax.Updater('capainfolugar', archivo,
		{asynchronous:true,
		evalScripts:true,
		onSuccess:function(){
			capainfolugar.removeChild(icoloading);
		},
		onFailure:function(){
			capainfolugar.innerHTML = "Fallo la conexion al servidor. Int�ntelo de nuevo m�s tarde";
		},
		method:"get", 
		parameters:"id_lugar="+idlugar
		}); 
}

function cerrarDetallesLugar(){
	ponerCapaDeshabilitadora(false);
	Effect.Fade('capainfolugar');
	setTimeout("$('capainfolugar').removeChild($('capainfolugar').firstChild)", 1000);
	Effect.Appear('page_wrapper');
}
